package com.example.blog.modules.article.service;

import com.example.blog.modules.article.dto.CategoryDTO;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

public interface CategoryService {
    /**
     * 获取所有分类
     */
    List<CategoryDTO> getAllCategories();

    /**
     * 分页获取分类列表
     */
    Page<CategoryDTO> getCategories(String keyword, Pageable pageable);

    /**
     * 获取分类详情
     */
    CategoryDTO getCategory(Long id);

    /**
     * 创建分类
     */
    CategoryDTO createCategory(CategoryDTO categoryDTO);

    /**
     * 更新分类
     */
    CategoryDTO updateCategory(Long id, CategoryDTO categoryDTO);

    /**
     * 删除分类
     */
    void deleteCategory(Long id);

    /**
     * 获取分类树结构
     */
    List<CategoryDTO> getCategoryTree();

    /**
     * 更新分类排序
     */
    void updateCategorySort(List<CategoryDTO> categories);

    /**
     * 切换分类状态
     */
    void toggleCategoryStatus(Long id);
} 